﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SaleShop.DAL;
using SaleShop.Utils;

namespace SaleShop.BLL
{
    public class Cart
    {
        /// <summary>
        /// Thêm mới 1 sản phẩm vảo giỏ hàng
        /// </summary>
        /// <param name="accountName"></param>
        /// <param name="productID"></param>
        /// <param name="productName"></param>
        /// <param name="price"></param>
        /// <param name="image"></param>
        /// <returns></returns>
        public int InsertShoppingCart(string accountName, int productID, string productName, int price, string image)
        {
            try
            {
                CartDataContext context = new CartDataContext(Setting.ConnectionString);
                return context.InsertShoppingCart(accountName, productID, productName, price, image);
            }
            catch
            {
                throw;
            }
        }

        /// <summary>
        /// Lấy giỏ hàng của 1 tài khoản
        /// </summary>
        /// <param name="accountName"></param>
        /// <returns></returns>
        public List<ShoppingCartInfo> SelectShoppingCartByAccount(string accountName)
        {
            try
            {
                CartDataContext context = new CartDataContext(Setting.ConnectionString);
                return context.SelectShoppingCartByAccount(accountName).ToList();
            }
            catch
            {
                throw;
            }
        }

        /// <summary>
        /// Cập nhật lại số lượng hàng trong giỏ
        /// </summary>
        /// <param name="shoppingCartID"></param>
        /// <param name="quantity"></param>
        /// <returns>>0: Cập nhật thành công, 0:Số lượng nhập vào vượt quá cho phép, -1:Số lượng nhập vào không đúng</returns>
        public int UpdateShoppingCartQuantity(int shoppingCartID, short quantity)
        {
            try
            {
                CartDataContext context = new CartDataContext(Setting.ConnectionString);
                return context.UpdateShoppingCartQuantity(shoppingCartID, quantity);
            }
            catch
            {                
                throw;
            }
        }

        public int DeleteShoppingCart(int shoppingCartID)
        {
            try
            {
                CartDataContext context = new CartDataContext(Setting.ConnectionString);
                return context.DeleteShoppingCart(shoppingCartID);
            }
            catch
            {                
                throw;
            }
        }
    }
}
